Multi-core processors are able to process different computational tasks simultaneously. As such, multi-core processors can perform more computations in a given period of time as compared to single core processors. During the processing of different computation threads, the different cores on multi-core processors share resources such as on-chip communication buses, memory controllers, cache, I/O devices, and the like. At times, tasks executing on different cores interfere with one another due to the shared resources. These resource conflicts, which arise during processing, can increase the time used to execute a particular task. When the multi-core processor is implemented in a safety-critical real time system, the worst case processing time of the executing tasks must be known for the different tasks that execute on each processor. The degree of cross-core interference due to shared resources makes it difficult to measure and bound the effects of resource conflicts between executing tasks. The challenge of measuring and bounding the effects of the resource conflicts inhibits safety-critical real time systems from taking advantage of the performance benefits presented by multi-core processors.
For the reasons stated above and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the specification, there is a need in the art for improved systems and methods for controlling the cross-core interference due to shared resources.